{"componentChunkName":"component---src-templates-blog-post-js","path":"/css/vertical-aline/","result":{"data":{"site":{"siteMetadata":{"title":"Tory","author":"[Tory]","siteUrl":"https://gatsby-starter-bee.netlify.com","comment":{"disqusShortName":"","utterances":"JaeYeopHan/gatsby-starter-bee"},"sponsor":{"buyMeACoffeeId":"jbee"}}},"markdownRemark":{"id":"b314fc2d-b35b-5c4f-b49c-520812f2e17a","excerpt":"vertical-align 오늘을 css prop 중 vertical-align에 대해 심플하게 알아보자. vertical-aline은 mdn에서 display가 inline, inline-block, table-cell인 경우에 세로 방향의 line 정렬을 위해 사용할 수 있다고 소개한다. (즉, block level elements는 사용할 수 없음!) 그리고 정렬되는 기준이 조금 까다로운데 크게는 아래처럼 두 가지 경우로 정렬 기준을 나눌 수 있다. inline(inline, inline…","html":"<h1 id=\"vertical-align\" style=\"position:relative;\"><a href=\"#vertical-align\" aria-label=\"vertical align permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>vertical-align</h1>\n<p>오늘을 css prop 중 vertical-align에 대해 심플하게 알아보자.</p>\n<p>vertical-aline은 mdn에서 display가 <strong>inline, inline-block, table-cell</strong>인 경우에 세로 방향의 line 정렬을 위해 사용할 수 있다고 소개한다. (<strong>즉, block level elements는 사용할 수 없음!</strong>)</p>\n<p>그리고 정렬되는 기준이 조금 까다로운데 크게는 아래처럼 두 가지 경우로 정렬 기준을 나눌 수 있다.</p>\n<ul>\n<li>\n<ol>\n<li>inline(inline, inline-block) elements: 해당 elements를 포함하는 line box가 기준이 된다.</li>\n</ol>\n</li>\n<li>\n<ol start=\"2\">\n<li>table cell: 해당 cell이 기준이 된다.</li>\n</ol>\n</li>\n</ul>\n<p>이 중에 오늘은 <strong>inline elements</strong>에 대해서 알아볼 것이다.</p>\n<h2 id=\"vertical-align의-values\" style=\"position:relative;\"><a href=\"#vertical-align%EC%9D%98-values\" aria-label=\"vertical align의 values permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>vertical align의 Values</h2>\n<p>vertical align에는 다양한 value를 지정할 수 있는데,\nvalue에 따라서 부모 요소에 영향을 받는 것과, line box에 영향을 받는 value로 분류된다.</p>\n<h3 id=\"values-for-inline-elements\" style=\"position:relative;\"><a href=\"#values-for-inline-elements\" aria-label=\"values for inline elements permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Values for inline elements</h3>\n<h4 id=\"parent-relative-values\" style=\"position:relative;\"><a href=\"#parent-relative-values\" aria-label=\"parent relative values permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Parent-relative values</h4>\n<p>아래의 값들은 정렬시 부모 요소에 영향을 받는다.</p>\n<ul>\n<li>baseline(기준선): 해당 요소의 기준선을 부모 요소의 baseline으로 정렬한다. 단, textarea같은 몇몇의 <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/Replaced_element\">replaced elements</a>는 browser에 따라 baseline의 위치가 HTML 표준에 명세되어 있지 않기 때문에 주의해야 한다.</li>\n<li>sub: 해당 요소의 기준선을 부모 요소의 subscript-baseline(baseline보다 약간 아래)을 기준으로 정렬한다.</li>\n<li>super: 해당 요소의 baseline을 부모 요소의 superscript-baseline(baseline보다 약간 위)을 기준으로 정렬한다.</li>\n<li>text-top: 해당 요소의 top을 부모 요소 font의 top으로 정렬한다.(글꼴 중 가장 큰 철자 맨 위에 맞추어 정렬.)</li>\n<li>text-bottom: 해당 요소 &#x26; 부모 요소 font의 bottom을 기준으로 정렬한다.</li>\n<li>middle: 부모 요소의 baseline을 기준으로 x-height(소문자 x의 height)의 1/2이 기준이 된다.</li>\n<li>length: 부모 요소의 기준선에서 length 길이 만큼 위쪽으로 떨어진 위치가 해당 요소의 기준선이 된다. 따라서 0 이하의 값도 입력 가능.</li>\n</ul>\n<h4 id=\"line-relative-values\" style=\"position:relative;\"><a href=\"#line-relative-values\" aria-label=\"line relative values permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Line-relative values</h4>\n<p>아래의 값들은 Line에 영향을 받는다.</p>\n<ul>\n<li>top: 요소와 자식요소를 포함하여 전체 라인의 가장 위 라인이 기준이 된다.(line box의 최상단)</li>\n<li>bottom: 요소와 자식요소를 포함하여 전체 라인의 가장 위 라인이 기준이 된다.(line box의 최하단)</li>\n</ul>\n<blockquote>\n<p>baseline이 없는 경우 bottom margin이 baseline이 된다.</p>\n</blockquote>\n<h4 id=\"test\" style=\"position:relative;\"><a href=\"#test\" aria-label=\"test permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>test</h4>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span>\n  <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\">\n    <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> bisque<span class=\"token punctuation\">;</span>\n</span><span class=\"token punctuation\">\"</span></span></span>\n<span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span><span class=\"token punctuation\">></span></span>baseline<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span> <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\"><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> top</span><span class=\"token punctuation\">\"</span></span></span><span class=\"token punctuation\">></span></span>top<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span> <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\"><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> middle</span><span class=\"token punctuation\">\"</span></span></span><span class=\"token punctuation\">></span></span>middle<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span> <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\"><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> bottom</span><span class=\"token punctuation\">\"</span></span></span><span class=\"token punctuation\">></span></span>bottom<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span> <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\"><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> super</span><span class=\"token punctuation\">\"</span></span></span><span class=\"token punctuation\">></span></span>super<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span> <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\"><span class=\"token property\">vertical-align</span><span class=\"token punctuation\">:</span> sub</span><span class=\"token punctuation\">\"</span></span></span><span class=\"token punctuation\">></span></span>sub<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>span</span>\n    <span class=\"token style-attr\"><span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token style language-css\">\n    <span class=\"token property\">display</span><span class=\"token punctuation\">:</span> inline-block<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">height</span><span class=\"token punctuation\">:</span> 100px<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 100px<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> azure<span class=\"token punctuation\">;</span>\n</span><span class=\"token punctuation\">\"</span></span></span>\n    <span class=\"token punctuation\">></span></span>test inline element<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>span</span>\n  <span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<div style=\"text-align:center\">\n    <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 512px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 18.999999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAIAAAABPYjBAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAwklEQVQI123Lyw7BQBQAUP//F5YSsSCClFGlUo9FvRttVTrVFxqmZnRC57ISEcnZngLEo7PRjFb1PFS5p9yx/MZcOcNd6qkL1zJO0UXAVeR5MAGsgDf4KLhahaxbN1Oyh6V4VhNY4Q5yx+VYr4azxtzc6LZ1SFMC4k9mq+Zz284tRJcNbkiw74EjCws9t9Jt00kuyfFKEs7Tdw6nvxmCIfgqHFSINLZDulTcaxVmI2q2qdOPKAmyzKfMT8nDHwPuf+cXqyrR3vOyRGQAAAAASUVORK5CYII='); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"baseline\" title=\"baseline\" src=\"/static/1bb12e61208f5bb9fb4d073244cda410/01e7c/baseline.png\" srcset=\"/static/1bb12e61208f5bb9fb4d073244cda410/5a46d/baseline.png 300w,\n/static/1bb12e61208f5bb9fb4d073244cda410/01e7c/baseline.png 512w\" sizes=\"(max-width: 512px) 100vw, 512px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n</div>\n<ol>\n<li>부모의 라인은 parent와 baseline이 있으며 가장 아래쪽에 위치한 baseline이 부모의 baseline이 된다.</li>\n<li>자식의 baseline은 부모의 baseline을 따르기 때문에 두 baseline이 일치한다.</li>\n<li>top의 경우 line을 기준으로 가장 위쪽의 line인 parent가 기준선이 된다.</li>\n<li>bottom의 경우 line box의 최하단이 기준이 되었음을 알 수 있다.(line box가 계산되는 기준은 여라가지가 있지만 그 중에 inline-level 요소들의 높이를 계산하여 가장 큰 값을 가져오게 된다.)</li>\n</ol>\n<h3 id=\"reference\" style=\"position:relative;\"><a href=\"#reference\" aria-label=\"reference permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>reference</h3>\n<ul>\n<li>vertical-align: <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align\">https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align</a></li>\n</ul>","frontmatter":{"title":"vertical-align","date":"September 03, 2021"}}},"pageContext":{"slug":"/css/vertical-aline/","previous":{"fields":{"slug":"/react/router/"},"frontmatter":{"title":"router","category":"react","draft":false}},"next":{"fields":{"slug":"/javascript/width(web-api)/"},"frontmatter":{"title":"width(web api)","category":"javascript","draft":false}}}},"staticQueryHashes":["3128451518","521680639"]}